<?php

include('simple_html_dom.php');
include('conexion.php');
db_connect();
set_time_limit(0);
function lastIndexOf($haystack, $needle) {
    $index = strpos(strrev($haystack), strrev($needle));
    $index = strlen($haystack) - strlen($needle) - $index;
    return $index;
}

function registrar_anuncio($enlace, $titulo, $tipo_trabajo, $localidad, $nombre_empresa, $fecha_publicacion, $destacado, $imagen) {
    global $id_busqueda;
//    $query3 = "insert ignore into anuncio_preview (idbusqueda, url,titulo, fecha_scrap, fecha_publicacion, 
//                    idtipo_trabajo, idlocalidad, nombre_empresa,destacado,imagen,copiado) values 
//                    ('$id_busqueda', '$enlace','$titulo', now(), '$fecha_publicacion', '$tipo_trabajo', 
//                        '$localidad', '$nombre_empresa', '$destacado', '$imagen', 'n')";
    
    
        $query3 = "insert ignore into anuncio_preview (idbusqueda, url,titulo, fecha_scrap, fecha_publicacion, 
                    idtipo_trabajo, idlocalidad, nombre_empresa,destacado,imagen,copiado) values 
                    ('$id_busqueda', '$enlace','$titulo', now(), now(), '$tipo_trabajo', 
                        '$localidad', '$nombre_empresa', '$destacado', '$imagen', 'n')";


    $resultado2 = mysql_query($query3);
    if (!$resultado2) {
        throw new Exception($query3);
        return false;
    }
    else
        return true;
}

function reemplaza($nombre) {
    $find = array('á', 'é', 'í', 'ó', 'ú', 'ñ', 's');
    $repl = array('a', 'e', 'i', 'o', 'u', 'n', 'z');
    $var = str_replace($find, $repl, $nombre);
    return $var;
}

function get_localidad($nombre) {
    global $lista_localidades;

    if ($lista_localidades != null) {
        $num = mysql_numrows($lista_localidades);
        $i = 0;
        while ($i < $num) {
            $id_localidad = mysql_result($lista_localidades, $i, "idLocalidad");
            $nombre_localidad = utf8_encode(mysql_result($lista_localidades, $i, "nombre"));
            $localidad2 = reemplaza($nombre_localidad);
//            echo 'Localidad 2 '.$localidad2 . ' - Local ' . $nombre.'<br/>';
            if ($nombre_localidad == $nombre || $localidad2 == $nombre) {
                return $id_localidad;
            }
            $i++;
        }
    } else
        echo 'lista localidad vacia';
}

function get_tipo($nombre) {
    global $lista_tipo;
    if ($lista_tipo != null) {
        if ($nombre == 'Full-time') {
            $nombre = 'Tiempo Completo';
        } else if ($nombre == 'Part-time') {
            $nombre = 'Medio Tiempo';
        } else if ($nombre == 'Temporario') {
            $nombre = 'Temporal';
        } else if ($nombre == 'Pasantia') {
            $nombre = 'Prácticas';
        } else if ($nombre == 'Teletrabajo') {
            $nombre = 'Desde Casa';
        } else if ($nombre == 'Por Contrato') {
            $nombre = 'Tiempo Completo';
        } else if ($nombre == 'Voluntario') {
            $nombre = 'Tiempo Completo';
        }
        $num = mysql_numrows($lista_tipo);
        $i = 0;
        while ($i < $num) {
            $id_tipo = mysql_result($lista_tipo, $i, "idtipo_trabajo");
            $nombre_tipo = mysql_result($lista_tipo, $i, "nombre");
            if ($nombre_tipo == $nombre) {
                return $id_tipo;
            }
            $i++;
        }
    } else
        echo 'lista tipo vacia';
}

$lista_localidades;
$lista_tipo;
$url = $_POST['url'];
$pag = $_POST['pagina'];
$area;
if(isset($_POST['idareah']))
{
    $area = $_POST['idareah'];
} else { $area = '';}


$criterio = $_POST['criterio'];
$inicio = $_POST['inicio'];
$fin = $_POST['fin'];
$id_busqueda = '';

$query0 = "select * from localidad";
$resultado0 = mysql_query($query0);
if ($resultado0) {
    $lista_localidades = $resultado0;
}

$query00 = "select * from tipo_trabajo";
$resultado00 = mysql_query($query00);
if ($resultado00) {
    $lista_tipo = $resultado00;
}


$query = "insert into busqueda(url_busqueda, fecha, pagina,criterio_busqueda,area)    
        values ('$url', now(), '$pag', '$criterio','$area')";
$resultado = mysql_query($query);
if ($resultado) {
    $query2 = "select idbusqueda from busqueda ORDER BY idBusqueda DESC";
    $resultado_id = mysql_query($query2);
    if ($resultado_id) {
        $id_busqueda = mysql_result($resultado_id, 0, "idbusqueda");
    }
}

switch ($pag) {
    case 1:
        if ($id_busqueda != '') {
            if (isset($inicio) && isset($fin)) {
                $inicio = trim($inicio);
                $fin = trim($fin);
                if (is_numeric($inicio) && is_numeric($fin)) {
                    echo "<h2>Se extraeran anuncios de la pagina " . $inicio . " a la pagina " . $fin . '<h2>';
                    for ($i = $inicio; $i <= $fin; $i++) {
                        $dir = str_replace('.html', '', $url) . "-pagina-" . $i . '.html';
                        echo '<h3>' . $dir . '</h3>';

                        $html = file_get_html($dir);
                        $aviso = $html->find('a.aviso_box');
                        foreach ($aviso as $avi) {

                            $url_anuncio = "www.bumeran.com.pe" . $avi->href;

                            $empreg = $avi->find('h5');
                            if (isset($empreg[0]->plaintext)) {
                                if (strpos($empreg[0]->plaintext, ',')) {
                                    $region = trim(substr($empreg[0]->plaintext, lastIndexOf($empreg[0]->plaintext, ',') + 1));
                                    $region = utf8_decode($region);
                                } else {
                                    $region = trim($empreg[0]->plaintext);
                                    $region = utf8_decode($region);
                                }
                            } else {
                                $region = 'No Especificado';
                            }
                            echo '<br/>' . $region . '<br/>';

                            $titulo = $avi->find('h3');
                            echo utf8_decode($titulo[0]->plaintext) . "<br/>";

                            $nom_emp = "";
                            $nombre_empresa = $avi->find('h4');
                            if (isset($nombre_empresa[0]->plaintext) && $nombre_empresa[0]->plaintext == '')
                                $nom_emp = "Sin Nombre";
                            else
                                $nom_emp = utf8_decode($nombre_empresa[0]->plaintext);
                            echo $nom_emp . '<br/>';


                            $dias = $avi->find('.aviso_cuando');
                            $fecha = '';
                            if (isset($dias[0]->plaintext) && strpos($dias[0]->plaintext, 'días')) {
                                $d = preg_replace('/[^0-9]/', '', $dias[0]->plaintext);
                                //echo $d.'<br>';
                                //echo date("d-m-Y").'<br>';
                                echo date("d-m-Y", strtotime(-$d . 'day')) . '<br>';
                                $fecha = date("d-m-Y", strtotime(-$d . 'day'));
                            } else {
                                $fecha = date("d-m-Y");
                                echo date("d-m-Y") . '<br>';
                                //echo "hoy<br>";
                            }


                            $imagen = $avi->find('img');
                            $bandera = 0;
                            foreach ($imagen as $ima) {
                                if ($ima->src != "/css/img/sin-logo-Bumeran.jpg") {
                                    $bandera = 1;
                                    break;
                                }
                            }
                            if ($bandera)
                                echo "S<br>";
                            else
                                echo "N<br>";


                            //echo $region[0]->plaintext."<br>";

                            $dato = $avi->find('.aviso-dato');
                            $tipo = $dato[0]->plaintext;
                            //Si hay 2 elementos, el primero es tipo de trabajo y el segundo es el sueldo.
                            //Si solo hay 1, el elemento es tipo trabajo
                            //Pueden haber mas elementos o elementos distintos, como por ejemplo: "Apto disc." (trabajo apto para discapacitados). En un caso particular encontré un anuncio en el que el elemento 1 era: tipo trabajo y el segundo era: Apto disc.
                            //De cualquier forma no importa porque con el link del aviso se pueden obtener todos los datos a excepcion de la REGION o UBICACION; tampoco se puede saber facilmente si un anuncio es "apto disc", siendo mas facil saberlo al buscar anuncios.
//                            foreach ($dato as $d) {
//                                echo $d->plaintext . "<br>";
//                            }
                            if (!registrar_anuncio($url_anuncio, utf8_decode($titulo[0]->plaintext), get_tipo($tipo), get_localidad($region), $nom_emp, $fecha, 'S', $bandera)) {
                                echo 'no se pudo registrar';
                                break;
                            }
                        }
                    }
                }
            }
        }


        break;
        
    case 2:
        if ($id_busqueda != '') {
            if (isset($inicio) && isset($fin)) {
                $inicio = trim($inicio);
                $fin = trim($fin);
                if (is_numeric($inicio) && is_numeric($fin)) {
                    echo "<h2>Se extraeran anuncios de la pagina " . $inicio . " a la pagina " . $fin . '<h2>';
                    for ($i = $inicio; $i <= $fin; $i++) {

                        $dir = $url . "/page/" . $i;
                        echo '<h3>' . $dir . '</h3>';

                        //$logo = $html->find('div.blockEntry div div.contenImg a img');

                        $html = file_get_html($dir);
                        $anuncio = $html->find('div.blockEntry');
                        foreach ($anuncio as $anun) {
                            $link = '';
                            $titulo = '';
                            $enlace = $anun->find('div div h2.jobEntry a');
                            if (isset($enlace[0]->plaintext)) {
                                echo utf8_decode($enlace[0]->plaintext) . '<br>';
                            }
                            $titulo = $enlace[0]->plaintext;
                            if (isset($enlace[0]->href)) {
                                echo $enlace[0]->href . '<br>';
                                $link = $enlace[0]->href;
                            }


                            $empreg = $anun->find('div div h3.nameEntry');
                            if (isset($empreg[0]->plaintext)) {
                                //echo $empreg[0]->plaintext.'<br>';
                                $nomemp = trim(substr($empreg[0]->plaintext, 0, strrpos($empreg[0]->plaintext, '-')));
                                $region = trim(substr($empreg[0]->plaintext, lastIndexOf($empreg[0]->plaintext, ',') + 1));
                                if ($region == 'Perú') {
                                    $primero = substr($empreg[0]->plaintext, strrpos($empreg[0]->plaintext, '-') + 1);
                                    $region = trim(substr($primero, 0, lastIndexOf($primero, ',')));
                                }
                                echo utf8_decode($nomemp) . '<br>';
                                echo $region . '<br>';
                            }



                            $imagen = $anun->find('div div.contenImg a img');
                            $bandera = 0;
                            foreach ($imagen as $ima) {
                                if (isset($ima->src)) {
                                    //echo "S<br>";
                                    $bandera = 1;
                                    break;
                                }
                            }
                            if ($bandera)
                                echo "S<br>";
                            else
                                echo "N<br>";



                            $dias = $anun->find('div span');
                            $destacado = 0;
                            $fecha = '';
                            if (strpos($dias[0]->plaintext, 'destacado'))
                                $destacado = 1;
                            if (isset($dias[0]->plaintext)) {
                                $d = preg_replace('/[^0-9]/', '', $dias[0]->plaintext);
                                //echo $d.'<br>';
                                //echo date("d-m-Y").'<br>';
                                echo date("d-m-Y", strtotime(-$d . 'day')) . '<br>';
                                $fecha = date("d-m-Y", strtotime(-$d . 'day'));
                            } else {
                                $fecha = date("d-m-Y");
                                echo date("d-m-Y") . '<br>';
                                //echo "hoy<br>";
                            }
                            echo '<br>';

                            if (!registrar_anuncio($link, utf8_decode($titulo), '1', get_localidad($region), utf8_decode($nomemp), $fecha, $destacado, $bandera)) {
                                echo 'no se pudo registrar';
                                break;
                            }
                        }
                    }
                }
            }
        }
        break;
        
    case 3:
        if ($id_busqueda != '') {
            if (isset($inicio) && isset($fin)) {
                $inicio = trim($inicio);
                $fin = trim($fin);
                if (is_numeric($inicio) && is_numeric($fin)) {
                    
                    echo "<h2>Se extraeran anuncios de la pagina " . $inicio . " a la pagina " . $fin . '<h2>';
                    for ($i = $inicio; $i <= $fin; $i++) {
                        $p = ($i-1)*20+1;
                        $parte1 = substr($url, 0,  strpos($url, 'BqdComienzo='));
                        echo '<br/>'.$url.'<br/>';
                        $parte2 = substr($url, strpos($url, 'BqdComienzo='));
                        $parte3 = substr($parte2, strpos($parte2, '&'));
                        $dir = $parte1 . "BqdComienzo=" . $p.$parte3;
                        
                        echo '<h3>' . $dir . '</h3>';
                        //$logo = $html->find('div.blockEntry div div.contenImg a img');
                        $html = file_get_html($dir);
                        $avtest = $html->find('table[cellpadding=2] tr');
                        $c = 6;
                        for ($j = 0; $j < 20; $j++) {
                            echo $avtest[$c]->plaintext . '<br/>';                            
                            $titulo = trim(substr($avtest[$c - 2]->plaintext, 3 + strpos($avtest[$c - 2]->plaintext,'. -')));
                            echo $titulo.'<br/>';
                            $link = 'link';
                            $dest = 'N';
                            $lk = $avtest[$c - 2]->find('b a');
                            $lk2 = $avtest[$c - 2]->find('b b a');
                            //echo ' NO DESTACADO: '.$lk[0]->href.' DESTACADO: '.$lk2[0]->href.'<br/>';
                            if (isset($lk2[0]->href)) {
                                $link = $lk2[0]->href;
                                $dest = 'S';
                            } else {
                                $link = $lk[0]->href;
                            }
                            echo $dest . '<br/>';
                            echo $link . '<br/><br/>';
                            $c = $c + 3;
                            if (!registrar_anuncio($link, utf8_decode($titulo), '1', '26', 'Por definir', 'now()', $dest, 'N')) {
                                echo 'no se pudo registrar';
                                break;
                            }
                        }
                    }
                }
            }
        }

        break;
}
?>
